// edit.js
const app = getApp()

Page({
  /**
   * 页面数据
   */
  data: {
    id: '',           // 礼单ID
    name: '',         // 姓名
    amount: '',       // 金额
    is_return_gift: false, // 是否已回礼
    loading: false,   // 是否加载中
    submitted: false  // 表单是否已提交
  },

  /**
   * 页面加载时执行
   */
  onLoad(options) {
    // 获取传递的参数
    if (options) {
      this.setData({
        id: options.id || '',
        name: options.name || '',
        amount: options.amount || '',
        is_return_gift: options.is_return_gift === 'true'
      })
    }
  },

  /**
   * 姓名输入处理
   */
  onNameInput(e) {
    this.setData({
      name: e.detail.value
    })
  },

  /**
   * 金额输入处理
   */
  onAmountInput(e) {
    this.setData({
      amount: e.detail.value
    })
  },

  /**
   * 回礼状态切换
   */
  onSwitchChange(e) {
    this.setData({
      is_return_gift: e.detail.value
    })
  },

  /**
   * 保存编辑
   */
  async saveEdit() {
    // 设置表单已提交状态，用于显示验证错误
    this.setData({ submitted: true })
    
    const { id, name, amount, is_return_gift } = this.data
    
    // 验证姓名输入
    if (!name.trim()) {
      wx.showToast({
        title: '请输入姓名',
        icon: 'none'
      })
      return
    }
    
    this.setData({ loading: true })
    
    try {
      // 调用云函数
      const { result } = await wx.cloud.callFunction({
        name: 'updateGift',
        data: {
          id,
          name,
          amount,
          is_return_gift
        }
      })
      
      if (result.success) {
        wx.showToast({
          title: '更新成功',
          icon: 'success'
        })
        
        // 延迟返回，给用户查看提示的时间
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
      } else {
        wx.showToast({
          title: result.message || '更新失败',
          icon: 'none'
        })
      }
    } catch (err) {
      console.error('更新礼单失败', err)
      wx.showToast({
        title: '更新失败，请重试',
        icon: 'none'
      })
    } finally {
      this.setData({ loading: false })
    }
  },
  
  /**
   * 返回上一页
   */
  onCancel() {
    wx.navigateBack()
  }
}) 